refactor father hear function