Layering Reengineering