288: refactor