allow user to custom method