implementation of WC