forward declarations fixed