switched out some slightly faster methods