Split out functional tests into new files