Do we need all these defines?