interface and no more template