OPAL - Open and Extensible library for analyzing and engineering Java bytecode written in Scala