remove virtual pure methode from constructors. fix the fooAbleToHandle methode in factories