added necessary compiler conditionals