ensuring extensions are always lowercase