move DOM specifics into surface interface