As this returns a boolean, should it have an `is` somewhere in the name? 

Further, here is a place where a more explicit API might be preferable, so instead of `stopwatch.buttonUsable('start')` a test could call `stopwatch.isStartbuttonUsable`.