added factory and simple spec