start with update functionality
this change should not affect functionality
refactored/replaced setTimeout functions with a proper callbacks