BluePrint Interface -Leveing and XP

How viable does this look?

An experience and leveling system
Create a BluePrint Interface BPI_Exp

Functions to create.
GetCurrentExperience
Output Experience (Integer)

GetMaxExperience
Output MaxExerience (Integer)

Experience

Input ExpAmount (Integer)

Output NewExperience (Integer)

GainExperience

Input ExperienceInfo (St_ExpInfo)

Output GainExperience (boolean)
GetCurrentLevel

Output: CurrentLevel (Integer)

Create Structure

St_ExpInfo

Inputs
Amount (Integer)
ExpType (E_ExperienceType)

Create Enumeration

E_ExperienceType

Inputs

None
EnemyExp

QuestExp

BonusExp

Create BluePrint Actor Component BPC_Exp

Functions

Experience

GainExperience

Variables
Experience (integer)

MaxExperience (Integer)
Current Level (Integer)

Add interface to BP_Player

In interfaces

GetCurrentExperience

Get BPC_ExperienceSystem - Target Experience - Return Node

GetMaxExperience

Get BPC_ExperienceSystem - Target MaxHealth - Return Node

Experience

Get BPC_Exp - call function Experience - Return Node

GainExperience

Get BPC_Exp - call function GainExperience - Return Node

GetCurrentLevel

Get BPC_Exp - Get CurrentLevel - Return Node

Event Dispatcher for Gain Exp / Level Up

In BPC_Exp

Create Event Dispatcher OnGainExp

Inputs
AmountGained (Integer),
LeveledUp (Boolean)
NewLevel (Integer)

BP_Player

Look good?