Add skeleton of functional version