initial implementation of knockoutjs version;