Replaced pattern with custom control