for compsoer purpose