added Location struct