restructured the code to be more friendly for icenium