I'll write UML diagram later
delete console.log