adding TypeAwareTrait