refactored changed? into a module
changed? takes 0 or 1 arguments now