Box challenge: https://box.interviewstreet.com/challenges/dashboard/#problem/4f3c42a47d165