+ Extract common functionality