Rule implements IViolation
Changed all internals to publics (amung other things)
Re-organised position of generic TEntity for rules