todo changes (throwing error, new function)