total seperation with tests, bugfixes