add force mode and usage, great refactor