Refactoring in order to allow DesignField