change onAdd / onRemove to addBinding / removeBinding