turn type modifiers into enum
Merge pull request #3750 from Trass3r/master

use enums