refactoring of logical constraints
on going
Merge branch 'feature-logic' into develop