really unstable but kinda working