[DEV] rework object generation