added function call flexibility