reworking ..everything