add constructor for components and add the not gate in, the simplest gate