Use components instead of models