big refactoring, cleanup, decoupling data fetching, interface rendering