updated docs
normalize implementation