Solutions by librasteve.