improvement in interface, error handling