refactored partial