Not perfect
No returns
Z