major modifications to work with knockout.js library