updates to basic function