forward declaration paradigm used + compiles