sigh.. another refactoring bug, need tests!