added most of Switch need to pass data