changed return type slightly