Now quite a bit faster but broken, problem is with positioning