Changed from reflection to asm
Some other improvments