refactor the get_ methods, and add Datastore support