editor: refactor to modular design (requires)