updated to conform to official Dart project structure guidelines