file type based structure is stupid