Refactoring and forward declaration.