TODO: Ex.2 and Ex.3