added independent activation function