wip
mostly working