If these changes work generically we should use them all the time and get rid of the ifdef.