started abstracting TypedValue