front end stuff should be done, should refactor at some point