added a bunch more solutions;