add gear function