ripped the function call out of the restrictions of the demo