Change method signature
Refactor and improve type coercion
refactor + docs
Fix failure behavior