added factories
added data correctness test