major refactor, removed lots of code :))