Those defines are really unneccessary and confusing...