Using pure Java reflection instead of Mirror