factory create_as()