be more lazy and cache more signature parsing