improved the flow; purged implementations from so many places