tweaked with temp class