better comments and structure