added monitor factory