moved MapStorage into its own file