tree using shared_ptr
changed vm load-store ops to match C primitives