add more common functions