added guard for optional preproccessor