Refactor
Improve documentation