changed
done with functions
done with objects
done with mutuability