abstraction function bd