not fully abstract