Improved styles.
Added new tests.
Added more comments.