second version, non static