rethinking how to implement thing creation