a simple class that is useful for subclassing for viewModel objects that maintain their bound view with blocks that are called as properties change