added tests
added factory