implement butterfly subdivision