Rewrite onJoinerChangeFunc for multiple use