the name of the methods maybe are wrong, i find it hard to understand what they are conveying