move implementation classes to a separate project