alternative answer to #1
alternative answer to #1