modified Kernel to implement getting components via callbacks or promises