refactor and rabbitmq implementation