more async
refactoring
move non-essentials to extensions project