using enum for i/o parameter, letting Linker encapsulate iteration