added interfaces, return interfaces instead of pojos