basic test setup and factory