lots of changes. No exuses I should have commited much more frequently