Refactored component system and modified  makefile.