Looks to be good enough first draft of Bijection