work in progress on #12