Some refactoring & renaming
Ackermann sort of working!