reduced include dependencies in headers with forward declares