Changed a bit the methods to make it easier to maintain :P