added more comments, and an enum for positions