Abstraction with Procedures and Data