add authentication, and use factories for testing
resolve conflict