completle reimpl the flow