optimizing transactional and procedural code