Refactoring, added handling Ids as String and a new non-blocking Generator implementation