little speedup in compile time using forward declaration when possible