refactoring
emit piece