forward declaration checking (untested)