changing files and a lot of other refactors