added new interface and functions