add comments, make method names more descriptive