implemented walk