better tryInsert()