AIAA 2004-1262 Application of Object-Oriented Design Patterns to a CFD code with an Adaptive Mesh Refinement