wip. bear with me.