+ added more type checking, meanwhile the entire python community senses a disturbance