start page ~~~~~~~~~~ - login (uname pwd) -> start page (with error) / home page - signup -> signup page signup page ~~~~~~~~~~~ - signup -> signup page (with error) / start page (with success) home page ~~~~~~~~~ - logout -> start page (with success) PSEUDOCODE login_page: yield if (login) continue login_vrfy: if (signup) continue signup: login_vrfy: if (ok) continue home_page: if (error) continue login_page: (with error) home_page: yield if (logout) continue login_page: (with success) signup_page: yield if (signup) continue signup_vrfy: signup_vrfy: if (ok) continue login_page: (with success) if (error) continue signup_page: (with error)