decode implemented