Separate files, tried to be more concise