optional parametrization
update
tests and updates