allow components to be defined without data

empty components can act as flags