abstract change to semi-mono