selfuct added