Add component hook loader, and move each hook to it's own file