filter out messages from self
fix variable initialization bug
add example get_fact
refactor