everything except for animations kinda works, waiting for better algorithm and messages