initial commit, with full solution