refactor and documentation update