change interface for filters
move SessionContext to a seperate file
use smart ptr to manage memory
remove unused filters, add useful ProxyFilter
add filter to filter chain