use partial. Fix #373