Updated & rebased.