probably need to restructure forward declarations