helpers added, refactor 4 reduce code in steps