Started on location business logic, changed structs to classes to avoid boxing