added design documentation