merged in ViPER lib for testing