current, some optimalization