encapsulate steps as functions