Documentation Update

Added JavaDoc formatted comments to all functions / classes.