more performance implementation