Refactored with partial