implemented most instructions