still a work in progress and not happy w/ the structure at all yet