2 Applying Patterns for Reengineering to the Web