added scenario and refactored some stuff