Re-factored component registration