Friend classes in headers rather than public