added a component.json

I also switched to a reverse loop which in theory should be a little faster since the array only gets expanded once that way. Didn't look like it made much difference but can't be any slower.