change the way implement layer