First commit with thread safe fifo, sinle linked generic list and run length encoder