Abstracted a couple of classes and restructred folders.