Renamed methods to read more like a spec
Added ability to assert a Property
Use a default true function for the precondition
Switch precondition function back to a None by default