Forward declaration and circular dependency

Explained nicely there.