changed return structure