custom define some methods to add sigal or other nedds