refactoring
optimize term