Tried implementing a different method to make it more responsive on the surfaces that didn't work but in the process added a few comments.