using multiple files and forward declarations