further modifications
- use unique_ptr in the registered vector
- default component type of char
- introduce some macro sugar for declaring components with string
  literals