add comments and stuff