add latest version of functional prototype