surface init