Finished basic functionality, will do bonus later