do we really need 2 classes?