step commit finished the decode module and need some tests!