basic contact functionality done