changed the x/! implementation to a more object orientated one. apply k+ and change only the product states