asynchronous Gem first commit: refactoring from procemon gem