refactoring + 0 values allowed in annotation

1. refactoring
2. longSignature string is used as key (not its cache)
3. 0 values in UseCache mean "no limit"