Finished frontend, though could use testing and more error handling