added limit()