[FEATURE] Make the system flexible by adding some interfaces
Edit

Fix #3