refactored for more async
1.0.3