refactor + reworking