eliminate execution context
eliminate execution context
use implicit class