complete reworking
more rework