Architecture change
mark TODO and clean
clean