algo in now an interface