cleanup code a bit more and expand error messages