preprocessor conditionals cleaned up