simple version with knockout.js framework