freenect implementation works and some cleanup