Factor implementation added