Final Project Graham Groe, everything implemented