restructured functional tests into separate classes