don't use globals