Full refactor to prepare a PoC