add before filter and private method
add authentication test
fix bug
fix bug
fix bug