added asynchronous upload to speed things up