Building Abstraction with Procedure