move surface element defination out