Introduced GenericSurface
Added demo app