ok im an idiot forward declaration