fallback: refactor