working implementation from initilization