add surface generator