added specs, exceptions