Added factory that provides a contstructor