I see no reason not to do this, and it gives a unified place (the prepare() call) to initialize cached attributes and so on.