Splitting stuff into separate files. Currently broken.

Signed-off-by: Peter Atashian <retep998@gmail.com>