Expanded folder structure to accomodate refactor

Created spawn and cache folders to separate spawning components before
refactoring them into a single function for each.