rover controller with cleaned up loop()