feature-16:refactor