changing to a parameter-based interface