refactor other libs