refoactoring, documentation