added (most of the) solutions