added !! and changed code a bit