works now
kinda words needs lots of cleanup to be publicly usable