Added interface and concrete implementation for surfacae source.