Add more annitation and make code normataive