modify to accept parameters