Lots of fiddling. Most of it to get birectional binding that allows
special listeners that can be used with other frameworks (see JavaFx
version for example). Also did some refactoring