a tool for creating components