Changed some folder structures and abstraction