Add CPU implementation