rich web apps with kncockout.js