add location model + same code rafact