shifted some responsibilites, more phpunit tests