Author: Andreas Podelski,Byron Cook