Update the requires macro so it will work better with overloading
Update docs
Update README