added new interfaces and new base interface