implemented components scaling + refactoring