added comments and code and stuff