Functionally done. Propagating all the exceptions.