handle empty list
allow empty password for build_schema