This looks really good overall, but you should think about adding javadoc and other additional comments.