somehow works but very buggy