ok, needs heavy clean up