basic funtionality complete