add prepare support