finished implementing keccak functionality