Documentation

Sorry this is so late. Please read closely and make sure it works in
JavaDoc...turns out my javaDoc is broken and I didn't have time to fix
it.