mixin create hook order

with promise use singleton