cleaned up async source