added base for everything, will finish later