misc
merge conflicts
z function