Push before refactor
Added client state to transformer stack
Rename things slightly, correct types