reworking types