added pre-processor directives