adding features, fixin errors