wip. everything works.