Decouple flyweight serialisation from channel implementation, fix #24