better viriatum code structure