prolog refactoring
Merge origin/prolog1 into prolog1