improved island generation