not completed properly yet

needs a bit of simplification of classes!