added basic classes needed to implement third rule
created test for thrid property, proving that all previous elements work as expected
renamed method for Results to be more appropriate
Merge branch 'feature/third-rule'
implemented validation of type for product
implmented new state option and a test proving that system will handle fourth rule
Merge branch 'feature/fourth-rule'
updated comments
added email class and first part of the fifth rule
introduced payment class, and that one is being passed in the processes, instead of a product
created more tests for associating a payment with a product
Merge branch 'feature/payment-class'
Added tests and full support for fifth rule.
Changed properties to be classes extending base class, not implementing an interface.
Changed the state class to be based on descriptions rather than enum values.