example implementation of configurable product