requiring constructor to return the object