improve pointer tracking mechanism for moving a surface. still looks like shit though.