cleaned up forward declarations