One possibility for dual source/bytecode support in JiBX 2.0 might be to build on Javassist's source code handling by always generating source code and then using Javassist to convert it to bytecode when class files are being enhanced directly. But Javassist's source code support is limited and includes some idiosyncrasies that differ from standard Java source code (including the way method variables are referenced). Javassist is also slower than some of the other bytecode libraries (ASM, in particular, as discussed in "Classworking toolkit: ASM Classworking"). I'm expecting bytecode enhancement to remain the main focus of JiBX 2.0, and in some circumstances (such as using JiBX in combination with an IDE's automatic compilation), the bytecode enhancements may need to be done repeatedly, so I see speed as an important concern. Finally, the Javassist GPL license is not compatible with JiBX's BSD license. For all these reasons, I'm going to take a different approach.