add errorlistener etc.
done
change some names