better return codes