i should go for a sleep and i still belive that this is the work for template haskell, should lern it some time