Split out project funcationality into own file.