updated with showcode and reference