Changed to use interface instead of abstract class in method signature