Rewrote InOut using no #defines