applied include hierarchy to conform with requirements
working on the docs