reworked assembly generation