reimplement head tracking