fixed previous commit
moved preprocessor to statement
added possibles stuff
added default stuff
the statement now uses the default and possibles
using alias is just ok
make it simpler
added versionadded and versionchanged