fixed an abstraction bug