tentative doubletons work, will probably need refactoring