more files added and methods split up