Update: Rewrite promise module using kclass