completed all functionality w/o data persistence