Registration is ugly but is functional enough for the class