implemented new functions