refactor + doc