Possibly this should be wrapped into a Collections.immutableList(values) to avoid modification from the outside.
Otherwise this LGTM.
@wesleypeck comments?