Finalized overhauled version