better serialization, move towards more bindings/mvvm style