use argument count as default value condition, fix expected token error message generation
adds more annoying license headers
various refactoring and cleanup