Modified dpll implementation, now uses structures to pass less data on function calls