refactor `fire_on`
add a debug log on `fire_on` call
rename `fire_on` into `call`
add a `fire` method that triggers events
add a debug log on `set_field_value`
refactor `set_field_value` for select field
`set_field_value` now triggers `input` and `change` events