all basic functionality should be added