add validation and path-creation to State