initial commit
parts of 2.2, 2.3 solutions