more consistent interface