Add functional app
Merge new upstream