Separated all data structures into different files

To make it easier to read and organize