Prepare the package for the public announcement
Add tests
Add example
Remove race conditions
Add BaseLoop to avoid code repetition
Error handling
Updated README