let restrictions with EMPTY return EMPTY
refactor: avoid concrete types

(use interface "Local" instead of class "JimpleLocal")
more refactoring (using interfaces over concrete types)