some refactoring
default parameters