improve with decode steps