Minor re-factoring and formatting changes
Implemented 'Null', 'NonNull', 'Undefined', 'NonUndefined', added more tests