implemented progress stuff, error messaging