Refactorization/engines

Refactorize logic for workshop engine.

Already reviewed by @vicmaster and @zalapeach
Use `||` instead of `or`.