User requests refactoring (wip, unstable)