refactor: codebase cleanup and deduplication
abstracting input handlers, path gen, and UI to deduplicate and improve maintainability before adding more shit
abstracting input handlers, path gen, and UI to deduplicate and improve maintainability before adding more shit