avoid using entrySet where possible
change fields to static final
avoid using keySet