removed redundent abstract