few more done, 3 more left plus some refactoring