moved argument count check before argument extraction
normalized indent
handle NULL argument