use same type as in interface