added comments and stuff