added size() to interface