added comments, organized,