Minimal implementation with half-assed UI and file-based persistence (read-only for now)