That would mean moving input_event into catacurse,h. At the start that's what I wanted to do but then I wondered if that would be breaking the levels of abstraction in the code. But looking at it closer I guess it probably doesn't, so I'll see about moving that over then using that to encapsulate keyboard and mouse.