splitted up code accross multiple files
pylint & pep8 fixes
added unit tests
new tests