I think it should not be declared here fully, you could make just a forward declaration