add bunch of docs and improve context.evaluate_filters