Add specs + Various Fixes

Fixes conflicts between pr/90 & pr/87 so they can both be merged.