Shouldn't this be an interface like above?