Using functions and transactions