Move Most implementations to engine

Changes most classes to interfaces and moved implementations into the
engine repository