add pre method