use handles instead of GOs everywhere