wip, almost sort of working!