implement config item with the descriptor protocol

@lepture Please review it.

Thanks.