@transactional OK for real