added partial and controller logic