Add 'id' attribute reader
Replace poll() and simplify as select()