JavaDoced the shit out of the code