Large refactor
docBlock