I'm ok with any of these options. #2 seems maybe the best choice. Probably better with a private header file, but I'm ok with making the necessary functions public, too. Ankit: What's your preference? You have a valuable outsider's perspective.