Refactored to be OOP and modular.
The only part which isn't modular is SDL itself.

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