remove boost dependency
merge codes