redesigned extension point, added example implementation