Refactoring!

  - Made compiler enforce that components have valid IDs

  - Renamed some stuff to actually be what it claims to be