Implements an immutable event builder, to builds events instances that are unchangeable after its build. Depends on #28