added new methods to interface and implementation