adjusted initialize method and steps