1. A method for controlling a vehicle, the method comprising: tracking a neighboring vehicle using one or more sensors and determining a vehicle state; generating a three dimensional (3D) model of the vehicle and neighboring vehicle and deriving an environment for the vehicle; predicting a predicted behavior of the neighboring vehicle based on at least the 3D model, the current state of the vehicle and the current state of the environment of the vehicle, wherein the predicted behavior comprises the neighboring vehicle changing lanes; determining if the neighboring vehicle is performing the predicted behavior based on the 3D model and a current state of the vehicle and the environment of the vehicle; notifying a driver of options based on the predicted behavior; and preparing the vehicle to respond based at least in part on the predicted behavior of the neighboring vehicle and a predicted behavior of the driver, and controlling the vehicle in response.