refactored listener gen, support for 15  and 20%