Solutions to s4n programming challenges