Use Supervisor/GenServer/GenEvent
Fix compilation warnings
Remove record specific formater
Upgrade required elixir version