added bit by bit model