this whole shit is work in progress lol