restart still needs to be improved