add new funtions