move stuff into different files and updateg