Added docBlock
Clean up
Large refactor