begin to implement step5