Wip/abstract crud