Rebase pt 2 - bringing in code from IanPlu/robotsimulator