Add isImplicit
Add comments and refactor
Fix object check