cleaned up and comments