position based controller

Working, but haven't checked rigorously