Make MQ lock free from the consumer side
Make MQ more flexible, use for any type with any size buffer