Developing Adaptable Components Using Dynamic Languages