removed unused abstract() function