using boost algorithm