reworking everythimg