Implicit and Explicit combined

Implicit and explicit functionality combined
Name changes