reworking the whole damned thing