implemented first stage of new interface