basic implementation of optional params and small API changes
Merge branch 'feature-optionalparams' into development