pre added and some tweaks to interface