always return output, only load when necessary