functionise it