refactor cglib