begin to do some crazy stuffs on fields smashing, commit the code for backup