support add/remove method, and support readonly properity