moved a bit out of the generic in to a working version. TODO push back
generic.