folded even more things into base classes