Refactoring - functional split