create specs from catalog items, and use these in many places.  also fix some NPE and serialization issues.