major changes : too many to document : do diff for code
fixed minor bugs