refactored partial matches