functional programme
learn module
oop