add better comments and more descriptive names