reorder methods
reorder methods
internal method renaming
change how bind values get passed around
cleaning up
split up prepareWithValues() method