Proper implementation for word generation