Cleared up the code and added comments