updates to core functions