make universal lib creation more generic