implement all