not abstract