added tests, fixed properties, and updated comments