definitely dont make this transactional