allowing for variable input