2nd PR - after refactoring

2nd PR - after refactoring
--------------------------------------------------------
Workflow and unit tests comming soon