added design documentation.