Added design document
completed design docs
added test cases
updated design doc
added default algorithm