all steps functional