add new codecs module and update doc/test accordingly