move extend into outer scope
use i- functions whenever possible
version bump