added comments cleaned up code