support for [] and ?