updated to conform to Dart's official project structure guidelines