add a test data factory to easier generate test data