more knockout.js viewmodel implementation and bindings