robot implementation