split the common.* files in seperate files because it got kinda cluttered