added isAvailable() method