Reorganize functions,  and optimize fieldWith