#if’d the whole implementations so things are nice