move run logic out of the constructor and into the run method
Close the session right away if we know we won't write to it.

This is to increase performance.
update to include the run method
controller::run() is not called by controller::__construct()

manually call it before rendering
Merge remote-tracking branch 'upstream/develop' into develop