quasi functional steps thing