Improved modularity, still probably won't compile though