fix indentation
refactor the model implementation by separating the data from the specification. This both simplifies the code and is a prerequisite for forthcoming plugin which does two-way DOM binding