make use of delegation and switch 'bind' to 'on'