add aspect api
`context` arguments support
add test for `context` arguments