further customization to support more file types