Discovering and composing atomic Web services into more complex ones is still a hot research topic presenting serious challenges that much efforts tried to resolve. These challenges are related especially to the dynamic feature of the service world, the complexity of the user query and the continuous growth in the number of the Web services evolved in the Web. In this paper, we provide a new solution to address these challenges and offer a composite service that meets the user requirements as well as his/her preferences in an automatic way. We propose a goal-oriented composition framework that consists on two-level architecture: Type-level and Instance-level. The type-level module supports dynamicity using a declarative language that formulates the composition process from specification to plan generation using a dynamic description logic (DDL) language. Taking the generated plan and the existing service instances as inputs, the instance-level module provides an optimal executable plan using a QoS-aware selection engine.