find_library for SDL libs
std::make_unique added
visitor pattern applied for SDL events