added codestyle to repo
programmed against interfaces
deleted unneccessary code
some code quality refactoring