added intrisic functions