knockout implementation