most of the k -> ... cases
added k -> ... cases