more precise types for files