better interface
closes #2