merged the v18 changes in the hopes of creating a unified library