updated with observe changes