initial setup
first tests
added lots of functionality