convert to using an interface