change calculations and removing observer