feat: add steps and improve tests