Implement homework04