load() - loads and reloads indiscriminately
autoload() - only loads when classes inside are first called upon
require() - loads only once, further calls are ignored
require_relative() - same as require() except file paths are explicitly relative