Dynamic observe function