Refactored so that we can have different pragma.