Finished task #4. Should be tested before close.