Use github VS .gitignore, and make sure we are not passed null objects

We should use the proper .gitignore file from github...

also we should make sure parameters with no default values should be checked for null constraints this is a best practice violation