Depend on abstractions & fix failing code