add comments and proper naming