NPC base implementation