initial commit. 2-way binding mostly working OK