In this talk we present a new subfield algorithm which computes all intermediate fields of a separable field extension K/k. In the case of number fields we can prove that the new algorithm runs computes all "generating subfields" in polynomial time. In case that there are only polynomial many subfields we are able to compute all subfields in polynomial time. The algorithm is based on factoring polynomials and solving linear system of equations. There are (non-trivial) examples (of degree 60) where this algorithm succeeds to find the first subfield of degree 30 within 90 seconds. This is a joint work with Mark van Hoeij.