added a bunch more instructions, need to think of how to best implement primives