still have some unfixed problem in decode