added limit and offset