defining new functions