finally fixed methods