fix: constitute functions should be asynchronous