bugfix: added a way to ensure only one listener is added to a property at the whole time
- before, multiple listeners could be added under certain circumstances
- added new test to ensure the correctness of the listeners