pass in context and arguments