add some checks on input parameters