All functions working together. Still have to work on mouse movement