Generalizing
using Arrow notation
Lambda Syntax
Passing function as parameter
Point Free programming
Added Map file
added constructor apart from basic