Takes care of API section of #57 - still need to polish front end with graphics