Abstractions and patterns