Refactored stuff into multiple files.

Signed-off-by: retep998 <retep998@verizon.net>