implement contact editing and some style update