extended prototype