Implement Not
Implement And
Implement Or
Implement Xor
Implement Mux

I reckon this can be optimized further
Implement DMux