the compiler directive have been cleaned up and commented