use target; implement zmap; add volatile zoffset