Added strategey pattern code, description still needs updating.