implementation finished, tests started, it solves the xor problem (I guess)