adding step by step functionality.