implement single func assemble