changed signatures to make it consistent along the way