first implementation
use a distinct ivar for each method