taking a portable extension approach