+ Major cleanup.
! Correctly call prepare.