expanded functional tests into classes