I don't understand why the constructor needs to take axis. The way that ```register()``` handles it is much clearer now, but I just can't figure this out.