try to design softmax by using interface