Do abstractions mean giving up flexibility?