Reorganised and updated docs
Removed smart_is_available, check on instantiation and croak if unavailable