changed return and arguments because reserved