* Seperatted into seperate files for easier reading
 * Cleanup