some tweaks and better interface