added specs and a few initializer sanity checks