implemented length