fixing issues 1, 2, 3 and 4