refactor zoom event listener into villageControl