I use Dominos, it does everything you asked for. :)