implemented constraints; viewport + list are now evaluate-components