global functions updated