added cross-platform file dialog