pushes algorithm little bit forward but still not complete. Refactors the message type to make it possible the usage of binary operators (store multiple messages in one value)