Refactored main API
Refactored dependencies'