added more complex has stuff