zoom persists
transform persist added, can probably be optimized