Adds documentation.
Moved redundant assignment out of switch statement cases.
Adds documentation.
Adds documentation.
Adds documentation.
Fixes bugs in javadocs.
Removes nested blocks and inline conditionals.
Use single enum instead of two different methods.