modify source and design