287: refactor