WIP. Almost there.