First almost working refactor. Discovered a bug in a probable bug in Auryn :-P