Refactoring again
Huge addition