keep good code style, keep memory leak away