work on firsthand method