implement the principal view