Add support for choosing any component as main component. Add component files for more rigorous dependency testing (no tests yet)