refactory to use gin instead martini :p