further updates to functions