A lot of things

Everything messed up but ready for better implementation