Refactorization/engines

Refactorize logic for workshop engine.

Already reviewed by @vicmaster and @zalapeach
Line is too long. [194/120]<br>Missing space after #.<br>Space found before comma.