added some surface sampling methods