looks efficient enough for me (atm)