new codec module
close #160 minimise commons dependecies