added interface template method