initial, the hard work is done now :D