added support for *almost* every key