class interface template