added function interfaces