Refactored to include Patent class