Minor refactoring
Turns out that default param value can be set in either definition or declaration, but not both
Refactoring and fixes