the best thing to do from a code hygeine standpoint, it's too painful to try to get right for now. Fixes #174 (second try).