decoupling ucl works, refactoring